/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is Forte for Java, Community Edition. The Initial
* Developer of the Original Code is Sun Microsystems, Inc. Portions
* Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.search.types;
import java.awt.*;
import java.beans.*;
import java.util.Date;
import javax.swing.*;
import org.openide.util.*;
import org.netbeans.modules.search.res.*;
/**
* Customizer of criterion for testing date of primary file modification.
*
* @author Petr Kuzel
* @version 1.0
*/
public class ModificationDateCustomizer extends javax.swing.JPanel implements Customizer {
private ModificationDateType peer;
/** Creates new form ModificationDateCustomizer */
public ModificationDateCustomizer() {
initComponents ();
setBorder (new javax.swing.border.TitledBorder(Res.text("LABEL_MODIFIED"))); // NOI18N
ButtonGroup group = new ButtonGroup();
group.add(daysRadioButton);
group.add(betweenRadioButton);
HelpCtx.setHelpIDString(this, ModificationDateType.class.toString());
}
/** Initialize customizer state.
*/
public void setObject(final Object obj) {
peer = (ModificationDateType) obj;
// System.err.println("New peer: " + peer );
// set default coloring
daysTextField.setForeground(Color.black);
afterTextField.setForeground(Color.black);
beforeTextField.setForeground(Color.black);
daysTextField.setText(peer.WILDCARD);
afterTextField.setText(peer.WILDCARD);
beforeTextField.setText(peer.WILDCARD);
// display object value in customizer
if ( ! peer.getMatchAfter().equals(peer.WILDCARD) ) {
afterTextField.setText(peer.getMatchAfter());
if ( ! peer.getMatchAfter().equals(null) ) betweenRadioButton.setSelected(true);
}
if ( ! peer.getMatchBefore().equals(peer.WILDCARD) ) {
beforeTextField.setText(peer.getMatchBefore());
if ( ! peer.getMatchAfter().equals(null) ) betweenRadioButton.setSelected(true);
}
if ( ! peer.getDays().equals(peer.WILDCARD) ) {
daysTextField.setText(peer.getDays());
daysRadioButton.setSelected(true);
}
}
public void addPropertyChangeListener(final java.beans.PropertyChangeListener p1) {
}
public void removePropertyChangeListener(final java.beans.PropertyChangeListener p1) {
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the FormEditor.
*/
private void initComponents () {//GEN-BEGIN:initComponents
daysRadioButton = new javax.swing.JRadioButton ();
daysTextField = new javax.swing.JTextField ();
daysLabel = new javax.swing.JLabel ();
betweenRadioButton = new javax.swing.JRadioButton ();
afterTextField = new javax.swing.JTextField ();
andLabel = new javax.swing.JLabel ();
beforeTextField = new javax.swing.JTextField ();
egLabel = new javax.swing.JLabel ();
setLayout (new java.awt.GridBagLayout ());
java.awt.GridBagConstraints gridBagConstraints1;
daysRadioButton.setText (Res.text("LABEL_DURING_LAST"));
daysRadioButton.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
daysRadioButtonActionPerformed (evt);
}
}
);
gridBagConstraints1 = new java.awt.GridBagConstraints ();
gridBagConstraints1.insets = new java.awt.Insets (4, 12, 4, 4);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
add (daysRadioButton, gridBagConstraints1);
daysTextField.setPreferredSize (new java.awt.Dimension (50, daysTextField.getPreferredSize ().height));
daysTextField.addKeyListener (new java.awt.event.KeyAdapter () {
public void keyReleased (java.awt.event.KeyEvent evt) {
daysTextFieldKeyReleased (evt);
}
}
);
gridBagConstraints1 = new java.awt.GridBagConstraints ();
gridBagConstraints1.insets = new java.awt.Insets (4, 4, 4, 4);
add (daysTextField, gridBagConstraints1);
daysLabel.setText (Res.text("LABEL_DAYS"));
gridBagConstraints1 = new java.awt.GridBagConstraints ();
gridBagConstraints1.gridwidth = 0;
gridBagConstraints1.insets = new java.awt.Insets (4, 4, 4, 8);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
add (daysLabel, gridBagConstraints1);
betweenRadioButton.setText (Res.text("LABEL_BETWEEN"));
betweenRadioButton.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
betweenRadioButtonActionPerformed (evt);
}
}
);
gridBagConstraints1 = new java.awt.GridBagConstraints ();
gridBagConstraints1.insets = new java.awt.Insets (4, 12, 4, 4);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
add (betweenRadioButton, gridBagConstraints1);
afterTextField.setPreferredSize (new java.awt.Dimension (100, afterTextField.getPreferredSize ().height));
afterTextField.addKeyListener (new java.awt.event.KeyAdapter () {
public void keyReleased (java.awt.event.KeyEvent evt) {
afterTextFieldKeyReleased (evt);
}
}
);
gridBagConstraints1 = new java.awt.GridBagConstraints ();
gridBagConstraints1.gridwidth = 2;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets (4, 4, 4, 4);
gridBagConstraints1.weightx = 1.0;
add (afterTextField, gridBagConstraints1);
andLabel.setText (Res.text("LABEL_AND"));
gridBagConstraints1 = new java.awt.GridBagConstraints ();
gridBagConstraints1.insets = new java.awt.Insets (4, 4, 4, 4);
add (andLabel, gridBagConstraints1);
beforeTextField.setPreferredSize (new java.awt.Dimension (100, beforeTextField.getPreferredSize ().height));
beforeTextField.addKeyListener (new java.awt.event.KeyAdapter () {
public void keyReleased (java.awt.event.KeyEvent evt) {
beforeTextFieldKeyReleased (evt);
}
}
);
gridBagConstraints1 = new java.awt.GridBagConstraints ();
gridBagConstraints1.gridwidth = 0;
gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints1.insets = new java.awt.Insets (4, 4, 4, 4);
gridBagConstraints1.weightx = 1.0;
add (beforeTextField, gridBagConstraints1);
egLabel.setText (Res.text("DATE_EXAMPLE") + new ModificationDateType.FormattedDate(new Date()).toString());
gridBagConstraints1 = new java.awt.GridBagConstraints ();
gridBagConstraints1.gridx = 1;
gridBagConstraints1.gridy = 2;
gridBagConstraints1.gridwidth = 4;
gridBagConstraints1.insets = new java.awt.Insets (4, 4, 4, 4);
gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
add (egLabel, gridBagConstraints1);
}//GEN-END:initComponents
private void beforeTextFieldKeyReleased (java.awt.event.KeyEvent evt) {//GEN-FIRST:event_beforeTextFieldKeyReleased
betweenRadioButton.setSelected(true);
setBetween();
}//GEN-LAST:event_beforeTextFieldKeyReleased
private void afterTextFieldKeyReleased (java.awt.event.KeyEvent evt) {//GEN-FIRST:event_afterTextFieldKeyReleased
betweenRadioButton.setSelected(true);
setBetween();
}//GEN-LAST:event_afterTextFieldKeyReleased
private void betweenRadioButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_betweenRadioButtonActionPerformed
setBetween();
}//GEN-LAST:event_betweenRadioButtonActionPerformed
private void daysRadioButtonActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_daysRadioButtonActionPerformed
setDays();
}//GEN-LAST:event_daysRadioButtonActionPerformed
private void daysTextFieldKeyReleased (java.awt.event.KeyEvent evt) {//GEN-FIRST:event_daysTextFieldKeyReleased
daysRadioButton.setSelected(true);
setDays();
}//GEN-LAST:event_daysTextFieldKeyReleased
private void setDays() {
String text = daysTextField.getText();
try {
peer.setDays(text);
daysTextField.setForeground(Color.black);
} catch (IllegalArgumentException ex) {
daysTextField.setForeground(Color.red);
}
}
private void setBetween() {
String after = afterTextField.getText();
String before = beforeTextField.getText();
try {
peer.setMatchAfter(after);
afterTextField.setForeground(Color.black);
} catch (IllegalArgumentException ex) {
afterTextField.setForeground(Color.red);
}
try {
peer.setMatchBefore(before);
beforeTextField.setForeground(Color.black);
} catch (IllegalArgumentException ex) {
beforeTextField.setForeground(Color.red);
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JRadioButton daysRadioButton;
private javax.swing.JTextField daysTextField;
private javax.swing.JLabel daysLabel;
private javax.swing.JRadioButton betweenRadioButton;
private javax.swing.JTextField afterTextField;
private javax.swing.JLabel andLabel;
private javax.swing.JTextField beforeTextField;
private javax.swing.JLabel egLabel;
// End of variables declaration//GEN-END:variables
}
/*
* Log
* 11 Gandalf-post-FCS1.9.1.0 4/4/00 Petr Kuzel Comments + output window
* fix
* 10 Gandalf 1.9 1/13/00 Radko Najman I18N
* 9 Gandalf 1.8 1/5/00 Petr Kuzel Margins used. Help
* contexts.
* 8 Gandalf 1.7 1/4/00 Petr Kuzel Bug hunting.
* 7 Gandalf 1.6 12/23/99 Petr Kuzel Architecture improved.
* 6 Gandalf 1.5 12/20/99 Petr Kuzel L&F fixes.
* 5 Gandalf 1.4 12/17/99 Petr Kuzel Bundling.
* 4 Gandalf 1.3 12/16/99 Petr Kuzel
* 3 Gandalf 1.2 12/15/99 Petr Kuzel
* 2 Gandalf 1.1 12/15/99 Martin Balin Fixed package name
* 1 Gandalf 1.0 12/14/99 Petr Kuzel
* $
*/